// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax --maglev

function foo(__v_4) {
  var __v_5 = (function () {
    return __v_4;
  })();
  var __v_6 = __v_5.x;
  arguments[42];
  return __v_6 + __v_5.x;
}
var __v_0 = { x: 24 };
__v_0.g = 43;

ArkTools.prepareFunctionForOptimization(foo);
foo({ x: 42 });
foo({ x: 42 });

ArkTools.optimizeMaglevOnNextCall(foo);
var __v_3 = { x: 42 };
// Object.prototype.__defineGetter__(42, function () {
//   __v_3.__defineGetter__('x', function () {});
// });

Object.defineProperty(Object.prototype, 42, {
  get() {
    Object.defineProperty(__v_3, 'x', {
      get() {},
    });
  },
});

assertEquals(NaN, foo(__v_3));
